/**
 * @file
 * @author dousha
 * @date 2020
 */

#ifndef PERIPHERAL_H
#define PERIPHERAL_H

#include <stdint.h>

/**
 * 外设标识符
 *
 * 这个标识符应该是在整个设计中唯一的，用于在外设抽象层标识各个外设。
 * 
 * 这个标识的具体值可以和实际的地址对应，也可以是独立设计的编码。
 * 
 * 推荐使用独立设计的编码并在驱动层（这个文件夹内）编写逻辑转换到对应的
 * 硬件操作上。这样有助于将代码移植到其他硬件而无需对用户空间进行过大的改动。
 * 
 * 至于这样做带来的额外开销，用一个<strong>足够聪明</strong>的编译器就能解决。
 */
typedef uint32_t PeripheralIdentifier;

extern void peripheral_init();

#endif
